---
dimensions:
  type:
    primary: operational
    detail: setup
  level: intermediate
standard_title: Contributor Covenant Code of Conduct
language: en
title: Plugin Developer Guidelines
description: This document provides guidelines that Dify plugin developers need to
  follow before submitting a Pull Request, including ensuring that the plugin functions
  properly, has complete documentation, provides unique value, and complies with data
  privacy and security standards. It includes documentation requirements, guidelines
  for avoiding duplicate plugins, and requirements for privacy information collection
  declarations.
---

### Before Submitting a Pull Request (PR)

1. **Ensure the Plugin Functions Properly and Documentation is Complete**

* Verify that the plugin's functionality works correctly. For details, please refer to [Remote Debugging Plugins](/plugin_dev_en/0411-remote-debug-a-plugin.en).
* Provide a comprehensive **README file**, including:
  * Setup instructions and usage guide.
  * Code, APIs, credentials, or other information that plugin users need to connect the plugin to the service.
* Ensure that collected user information is only used for connecting services and improving plugin functionality.
* Prepare a privacy policy content file or online document URL according to the [Plugin Privacy Data Protection Guide](/plugin_dev_en/0312-privacy-protection-guidelines.en).

2. **Verify the Value Contribution of the Plugin**

* Ensure the plugin provides unique value to Dify users.
* The plugin should introduce functionality or services not yet provided by Dify or other plugins.
* Follow community standards:
  * Content should be non-violent and respectful to the global user community.
  * Comply with the relevant policies of the integrated service.
* **How to check if similar plugins already exist?**
  * Avoid submitting plugins with functionality that duplicates existing plugins or PRs, unless the new plugin has the following characteristics:
    * Introduces new features.
    * Provides performance improvements.
  * **How to determine if a plugin is unique enough:**
    * If the plugin only makes minor adjustments to existing functionality (e.g., adding language parameters), it is recommended to extend the existing plugin directly.
    * If the plugin implements significant functional changes (e.g., optimizing batch processing or improving error handling), it can be submitted as a new plugin.
    * Not sure? Please include a brief explanation in your PR submission, explaining why a new plugin is needed.

**Example:** Taking the Google search plugin as an example, it accepts a single input query and outputs a list of Google search results using the Google Search API. If you provide a new Google search plugin with similar underlying implementation but with minor input adjustments (e.g., adding new language parameters), we recommend extending the existing plugin. On the other hand, if you implement the plugin in a new way with optimized batch search and error handling capabilities, it can be considered as a separate plugin for review.

3. **Ensure the Plugin Complies with the Following Privacy Data Standards**

### Information Disclosure Requirements:

* Developers **must** declare whether they collect any type of user personal data when submitting an application/tool. For details, please refer to the [Plugin Privacy Data Protection Guide](/plugin_dev_en/0312-privacy-protection-guidelines.en).
* If collected, **simply list** the types of data collected (e.g., username, email, device ID, location information, etc.), **no need to be overly detailed**.
* Developers **must** provide a privacy policy link. The privacy policy only needs to state what information is collected, how the information is used, what information is disclosed to third parties, and include links to third-party privacy policies.

**Review Focus:**

* **Form Review:** Check if data collection has been declared as required.
* **High-risk Data Screening:** Focus on whether sensitive data (e.g., health information, financial information, children's personal information, etc.) is collected. If sensitive data is collected, **additional review** of its purpose of use and security measures is required.
* **Malicious Behavior Screening:** Check for obvious malicious behavior, such as collecting data without user consent or uploading user data to unknown servers.

## Related Resources

- [Basic Concepts of Plugin Development](/plugin_dev_en/0111-getting-started-dify-plugin.en) - Learn the basics of plugin development
- [Publishing Plugins](/plugin_dev_en/0321-release-overview.en) - Overview of the plugin publishing process
- [Plugin Privacy Data Protection Guide](/plugin_dev_en/0312-privacy-protection-guidelines.en) - Guide for writing privacy policies
- [Publish to Dify Marketplace](/plugin_dev_en/0322-release-to-dify-marketplace.en) - Publish plugins on the official marketplace
- [Remote Debugging Plugins](/plugin_dev_en/0411-remote-debug-a-plugin.en) - Plugin debugging guide

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

<CardGroup cols="2">
    <Card
        title="Edit this page"
        icon="pen-to-square"
        href="https://github.com/alterxyz/dify-docs-plugin-dev/edit/main/plugin_dev_en/0312-contributor-covenant-code-of-conduct.en.mdx"
    >
        Help improve our documentation by contributing directly
    </Card>
    <Card
        title="Report an issue"
        icon="github"
        href="https://github.com/alterxyz/dify-docs-plugin-dev/issues/new?title=Documentation%20Issue%3A%20contributor-covenant-code-of-conduct&body=%23%23%20Issue%20Description%0A%3C%21--%20Please%20briefly%20describe%20the%20issue%20you%20found%20--%3E%0A%0A%23%23%20Page%20Link%0Ahttps%3A%2F%2Fgithub.com%2Falterxyz%2Fdify-docs-plugin-dev%2Fblob%2Fmain%2Fplugin_dev_en%2F0312-contributor-covenant-code-of-conduct.en.mdx%0A%0A%23%23%20Suggested%20Changes%0A%3C%21--%20If%20you%20have%20specific%20suggestions%20for%20changes%2C%20please%20describe%20them%20here%20--%3E%0A%0A%3C%21--%20Thank%20you%20for%20helping%20improve%20our%20documentation%21%20--%3E"
    >
        Found an error or have suggestions? Let us know
    </Card>
</CardGroup>
